<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <script>
    let obj = {
      name: 'wzy',
      show: function () {
        // obj指代当前对象，但是当obj命名发生改变就会报错
        // 应该使用 this
        // return obj.name;
        return this.name;
      }
    }
    console.log(obj.name);

    // window 初识
    console.log(window);
    console.log(this == window);

    let edu = {
      name: 'xxx',
      arr : ['a','b','c'],
      show() {
        console.log(this);
        function reder() {
          console.log(this);
        }
        reder();
      },
      // say:function() {
      //   return  this.arr.map(function (i) {
      //    return i.toUpperCase();
      //   }, this)
      // }

      //  将需要的 this 传入到函数当中
      say(){
        return this.arr.map(i=>i.toUpperCase(),this)
      }
    }
    // 当函数作为对象的属性,则称之为方法,方法中的this指向当前对象,其他的函数,this指向的都是window对象
    edu.show();
    console.log(edu.say());
  </script>

</body>

</html>